package com.java.day05.homework;

/**
 * 用户注册
 */

import java.util.Arrays;

/**
 * 用户输入用户名,密码
 * 用户输入确认密码,如果确认密码和密码不一样,则需要重新输入确认密码
 * 判断是否重名,如果重名return false
 * 判断是否存满了,如果满了则扩容
 */
public class UserRegister {
    /**
     * 属性:
     * userArr 用来存放用户的数组
     * confirmWord 确认密码
     * size 用户注册数量
     */
    User[] userArr = {};
    String confirmWord;
    int size = 0;

    /**
     * 方法:
     * nameArrUtils 判断用户名是否重复
     * input 判断是否重复,是否需要扩容,然后输入进数组当中
     * confirm 判断确认密码和密码是否一致
     * login 登录时的密码和用户名是否正确
     */

    public boolean nameArrUtils(String userName) {
//        for (int i = 0; i < userArr.length; i++) {  //出错啦
//            if (userName.equals(userArr[i].userName)) {  // i < userArr.length这样不行,数组元素可能为null
//                return true;
//            }
//        }
//        return false;
//    }

        for (int i = 0; i < size; i++) {   //修改为 i < size
            if (userName.equals(userArr[i].getUserName())) {
                return true;
            }
        }
        return false;
    }


    public int input(String userName, String password) {

        //判断是否重名
        if (nameArrUtils(userName)) {
            return 1;
        }

        //判断密码和确认密码是否一致
        if(!this.confirm(password,this.confirmWord)){
            return 2;
        }


        //如果不重名,是否需要扩容
        if (size == userArr.length) {
            userArr = Arrays.copyOf(userArr, userArr.length + 5);
        }

        //将用户名和密码放入数组
        userArr[size] = new User(userName, password);
        size++;
        return 3;
    }


    public boolean confirm(String password, String confirmWord) {
        this.confirmWord = confirmWord;
        if (password.equals(confirmWord)) {
            return true;
        }
        return false;
    }

    public boolean login(String userName, String password) {
        for (int i = 0; i < userArr.length; i++) {
            if (userArr[i]!=null&&userArr[i].getUserName().equals(userName) && userArr[i].getPassword().equals(password)) {
                return true;
            }
        }
        return false;

        //        User user = new User();
//        if(user.userName==userName&&user.password==password){
//            return true;
//        }
//        return false;
    }
}
